package io.gitee.yth.design.pattern.test.core.pattern.behavioral.state;

/**
 * @author yth
 * @since 2023-05-03-1:40
 */
public interface TCPState {

    /**
     * 数据传输
     */
    void transmit(TCPConnection tcpConnection, TCPOctetStream tcpOctetStream);

    /**
     * 主动打开（尝试与服务器建立连接）
     */
    void activeOpen(TCPConnection tcpConnection);

    /**
     * 被动打开（服务器监听端口）
     */
    void passiveOpen(TCPConnection tcpConnection);

    /**
     * 请求断开连接
     */
    void close(TCPConnection tcpConnection);

    /**
     * 发送syn
     */
    void synchronize(TCPConnection tcpConnection);

    /**
     * 发送ack
     */
    void acknowledge(TCPConnection tcpConnection);

    /**
     * 响应客户端的连接请求
     */
    void send(TCPConnection tcpConnection);

}
